<?xml version="1.0" encoding="utf-8" ?> 
<Feature id="AdoNet" name="DataAccess via AdoNet framework configuration">
	<Dependencies>
		<Dependency type="binary">SwafCore.dll</Dependency>
		<Dependency type="feature">BaseFrameworkFeature.xml</Dependency>
	</Dependencies>

  <ConfigurationClasses>
    <Class name="sysObjs-DarExtensions" type="Swaf.DataAccess.DarExtensionsConfigPartner,SwafCore" />
  </ConfigurationClasses>

  <Macro name="DbConnectionCatalog">DB</Macro>
	<ClassFactory id="AdoNetHelpers">
		<Class type="Swaf.DataAccess.SqlServerHelper,SwafCore" name="SqlServer" />
		<Class type="Swaf.DataAccess.OleDbHelper,SwafCore" name="OleDb" />
		<Class type="Swaf.DataAccess.ODBCHelper,SwafCore" name="ODBC" />
		
		<!-- The 'Oracle' entry is a generic helper for Oracle to use when you don't care which provider you use for Oracle.
		     This entry can be over ridden by another feature that provides uses a different AdoNet provider. -->
		<Class type="Swaf.DataAccess.MsOracleHelper,SwafCore" name="Oracle" />
		<!-- The 'MsOracle' entry is specific to the MS Oracle AdoNet provider and shouldn't be override with another provider.-->
		<Class type="Swaf.DataAccess.MsOracleHelper,SwafCore" name="MsOracle" />
	</ClassFactory>

	<ClassFactory id="DataRequestTypes">
		<Class type="SwafDataRequest,SwafCore" name="DbDataRequestOld" />
		<Class type="Swaf.DataAccess.MultiAdoNetDataRequest,SwafCore" name="DbDataRequest" />
		<Class type="Swaf.DataAccess.AdoNet.AdoNetDataAccessFactory,SwafCore" name="AdoNetDataAccess" />
	</ClassFactory>

	<ClassFactory id="AdoNetFormatters">
		<Class type="Swaf.DataAccess.AdoNetBizObjFormatter,SwafCore">
			<Pattern>bizobj(){ws}({1+ {anychar}})</Pattern>
			<Pattern>(merge){ws}bizobj{ws}list{ws}({lazy 1+ {anychar}}){ws}into{ws}({1+ {anychar}})</Pattern>
			<Pattern>(match merge){ws}bizobj{ws}list{ws}({lazy 1+ {anychar}}){ws}into{ws}({1+ {anychar}})</Pattern>
		</Class>
		<Class type="Swaf.DataAccess.AdoNetIntFormatter,SwafCore">
			<Pattern>int{ws}from{ws}({1+ {not-whitespace-char}})</Pattern>
		</Class>
	</ClassFactory>

	<ClassFactory id="NewAdoNetFormatters">
		<Class type="Swaf.DataAccess.AdoNet.NewAdoNetBizObjFormatter,SwafCore">
			<Pattern>(bizobj|bizobjlist){ws}of{ws}({lazy 1+ {not-oneof ;}}){semicolon}{ws}(merged){ws}into{ws}({1+ {anychar}})</Pattern>
			<Pattern>(bizobj|bizobjlist){ws}of{ws}({lazy 1+ {not-oneof ;}}){semicolon}{ws}(match{ws}merged){ws}into{ws}({1+ {anychar}})</Pattern>
			<Pattern>(bizobj|bizobjlist){ws}of{ws}({1+ {not-oneof ;}})</Pattern>
		</Class>
	</ClassFactory>

	<ApplicationData>
		<Entry name="AdoNetDbTypes" type="Swaf.Container.FlexiMap,SwafCore" />

		<Entry name="AdoNetDbTypes.SqlServer" type="Swaf.Container.FlexiMap,SwafCore" />
		<Entry name="AdoNetDbTypes.SqlServer.EnumType" type="String">System.Data.SqlDbType</Entry>
		<Entry name="AdoNetDbTypes.SqlServer.CommandType" type="String">System.Data.SqlClient.SqlCommand</Entry>
		<Entry name="AdoNetDbTypes.SqlServer.TransType" type="String">System.Data.SqlClient.SqlTransaction</Entry>
		<Entry name="AdoNetDbTypes.SqlServer.DefaultQueryTimeOut" type="String">130</Entry>

		<Entry name="AdoNetDbTypes.OleDb" type="Swaf.Container.FlexiMap,SwafCore" />
		<Entry name="AdoNetDbTypes.OleDb.EnumType" type="String">System.Data.OleDb.OleDbType</Entry>
		<Entry name="AdoNetDbTypes.OleDb.CommandType" type="String">System.Data.OleDb.OleDbCommand</Entry>
		<Entry name="AdoNetDbTypes.OleDb.TransType" type="String">System.Data.OleDb.OleDbTransaction</Entry>
		<Entry name="AdoNetDbTypes.OleDb.DefaultQueryTimeOut" type="String">10</Entry>
	</ApplicationData>


	<ClassFactory id="SqlServerDbTypes">
		<!-- SqlDbType specific db param types here -->
		<Class name="BigInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>BigInt</Default></Class>
		<Class name="Binary" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Binary</Default></Class>
		<Class name="Bit" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Bit</Default></Class>
		<Class name="Char" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Char</Default></Class>
		<Class name="DateTime" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>DateTime</Default></Class>
		<Class name="Decimal" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Decimal</Default></Class>
		<Class name="Float" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Float</Default></Class>
		<Class name="Image" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Image</Default></Class>
		<Class name="Int" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Int</Default></Class>
		<Class name="Money" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Money</Default></Class>
		<Class name="NChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NChar</Default></Class>
		<Class name="NText" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NText</Default></Class>
		<Class name="NVarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
		<Class name="Real" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Real</Default></Class>
		<Class name="SmallDateTime" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallDateTime</Default></Class>
		<Class name="SmallInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallInt</Default></Class>
		<Class name="SmallMoney" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallMoney</Default></Class>
		<Class name="Text" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Text</Default></Class>
		<Class name="Timestamp" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Timestamp</Default></Class>
		<Class name="TinyInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>TinyInt</Default></Class>
		<Class name="UniqueIdentifier" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>UniqueIdentifier</Default></Class>
		<Class name="VarBinary" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>VarBinary</Default></Class>
		<Class name="VarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>VarChar</Default></Class>
		<Class name="Variant" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Variant</Default></Class>
		
		<!-- CSF generic db param types here -->
		<Class name="Integer" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Int</Default></Class>
		<Class name="UnicodeChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NChar</Default></Class>
		<Class name="UnicodeVarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
		<Class name="Boolean" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Bit</Default></Class>
		<Class name="Date" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>DateTime</Default></Class>
		<Class name="String" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
	</ClassFactory>

		<ClassFactory id="System.Data.SqlDbType">
		<!-- SqlDbType specific db param types here -->
		<Class name="BigInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>BigInt</Default></Class>
		<Class name="Binary" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Binary</Default></Class>
		<Class name="Bit" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Bit</Default></Class>
		<Class name="Char" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Char</Default></Class>
		<Class name="DateTime" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>DateTime</Default></Class>
		<Class name="Decimal" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Decimal</Default></Class>
		<Class name="Float" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Float</Default></Class>
		<Class name="Image" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Image</Default></Class>
		<Class name="Int" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Int</Default></Class>
		<Class name="Money" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Money</Default></Class>
		<Class name="NChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NChar</Default></Class>
		<Class name="NText" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NText</Default></Class>
		<Class name="NVarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
		<Class name="Real" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Real</Default></Class>
		<Class name="SmallDateTime" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallDateTime</Default></Class>
		<Class name="SmallInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallInt</Default></Class>
		<Class name="SmallMoney" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>SmallMoney</Default></Class>
		<Class name="Text" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Text</Default></Class>
		<Class name="Timestamp" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Timestamp</Default></Class>
		<Class name="TinyInt" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>TinyInt</Default></Class>
		<Class name="UniqueIdentifier" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>UniqueIdentifier</Default></Class>
		<Class name="VarBinary" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>VarBinary</Default></Class>
		<Class name="VarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>VarChar</Default></Class>
		<Class name="Variant" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Variant</Default></Class>
		
		<!-- CSF generic db param types here -->
		<Class name="Guid" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>UniqueIdentifier</Default></Class>
		<Class name="Integer" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Int</Default></Class>
		<Class name="UnicodeChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NChar</Default></Class>
		<Class name="UnicodeVarChar" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
		<Class name="Boolean" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>Bit</Default></Class>
		<Class name="Date" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>DateTime</Default></Class>
		<Class name="String" mutable="false" type="System.Data.SqlDbType,System.Data"><Default>NVarChar</Default></Class>
	</ClassFactory>

	
	 <ClassFactory id="OleDbDbTypes">
    <!-- OleDbDbTypes specific db param types here -->
    <Class name="BigInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>BigInt</Default></Class>
    <Class name="Binary" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Binary</Default></Class>
    <Class name="Boolean" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Boolean</Default></Class>
    <Class name="Char" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Char</Default></Class>
    <Class name="Currency" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Currency</Default></Class>
    <Class name="DBDate" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBDate</Default></Class>
    <Class name="DBTime" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBTimeStamp</Default></Class>
    <Class name="DBTimeStamp" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBTimeStamp</Default></Class>
    <Class name="Date" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Date</Default></Class>
    <Class name="Decimal" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Decimal</Default></Class>
    <Class name="Double" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Double</Default></Class>
    <Class name="Guid" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Guid</Default></Class>
    <Class name="Integer" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Integer</Default></Class>
    <Class name="Numeric" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Numeric</Default></Class>
    <Class name="Single" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Single</Default></Class>
    <Class name="SmallInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>SmallInt</Default></Class>
    <Class name="TinyInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>TinyInt</Default></Class>
    <Class name="UnsignedBigInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedBigInt</Default></Class>
    <Class name="UnsignedInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedInt</Default></Class>
    <Class name="UnsignedSmallInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedSmallInt</Default></Class>
    <Class name="UnsignedTinyInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedTinyInt</Default></Class>
    <Class name="VarBinary" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarBinary</Default></Class>
    <Class name="VarChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarChar</Default></Class>
    <Class name="VarNumeric" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarNumeric</Default></Class>
    <Class name="VarWChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="WChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>WChar</Default></Class>

    <!-- CSF generic db param types here -->
	<Class name="UniqueIdentifier" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Guid</Default></Class>
	<Class name="UnicodeVarChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="UnicodeChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>WChar</Default></Class>  
	<Class name="Text" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="Int" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Integer</Default></Class>
    <Class name="DateTime" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBDate</Default></Class>
    <Class name="Bit" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Boolean</Default></Class>
	 </ClassFactory>

	 <ClassFactory id="System.Data.OleDb.OleDbType">
    <!-- OleDbDbTypes specific db param types here -->
    <Class name="BigInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>BigInt</Default></Class>
    <Class name="Binary" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Binary</Default></Class>
    <Class name="Boolean" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Boolean</Default></Class>
    <Class name="Char" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Char</Default></Class>
    <Class name="Currency" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Currency</Default></Class>
    <Class name="DBDate" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBDate</Default></Class>
    <Class name="DBTime" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBTimeStamp</Default></Class>
    <Class name="DBTimeStamp" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBTimeStamp</Default></Class>
    <Class name="Date" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Date</Default></Class>
    <Class name="Decimal" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Decimal</Default></Class>
    <Class name="Double" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Double</Default></Class>
    <Class name="Guid" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Guid</Default></Class>
    <Class name="Integer" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Integer</Default></Class>
    <Class name="Numeric" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Numeric</Default></Class>
    <Class name="Single" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Single</Default></Class>
    <Class name="SmallInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>SmallInt</Default></Class>
    <Class name="TinyInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>TinyInt</Default></Class>
    <Class name="UnsignedBigInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedBigInt</Default></Class>
    <Class name="UnsignedInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedInt</Default></Class>
    <Class name="UnsignedSmallInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedSmallInt</Default></Class>
    <Class name="UnsignedTinyInt" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>UnsignedTinyInt</Default></Class>
    <Class name="VarBinary" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarBinary</Default></Class>
    <Class name="VarChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarChar</Default></Class>
    <Class name="VarNumeric" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarNumeric</Default></Class>
    <Class name="VarWChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="WChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>WChar</Default></Class>

    <!-- CSF generic db param types here -->
	<Class name="UniqueIdentifier" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Guid</Default></Class>
	<Class name="UnicodeVarChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="UnicodeChar" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>WChar</Default></Class>  
	<Class name="Text" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>VarWChar</Default></Class>
    <Class name="Int" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Integer</Default></Class>
    <Class name="DateTime" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>DBDate</Default></Class>
    <Class name="Bit" mutable="false" type="System.Data.OleDb.OleDbType,System.Data"><Default>Boolean</Default></Class>
	 </ClassFactory>
	
	<ClassFactory id="MsOracleDbTypes">
		<!-- OracleType specific db param types here -->
		<Class name="BFile" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>BFile</Default></Class>
		<Class name="Blob" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Blob</Default></Class>
		<Class name="Byte" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Byte</Default></Class>
		<Class name="Char" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Char</Default></Class>
		<Class name="Clob" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Clob</Default></Class>
		<Class name="Cursor" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Cursor</Default></Class>
		<Class name="DateTime" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>DateTime</Default></Class>
		<Class name="Double" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Double</Default></Class>
		<Class name="Float" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Float</Default></Class>
		<Class name="Int16" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Int16</Default></Class>
		<Class name="Int32" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Int32</Default></Class>
		<Class name="IntervalDayToSecond" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>IntervalDayToSecond</Default></Class>
		<Class name="IntervalYearToMonth" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>IntervalYearToMonth</Default></Class>
		<Class name="LongRaw" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>LongRaw</Default></Class>
		<Class name="LongVarChar" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>LongVarChar</Default></Class>
		<Class name="NChar" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>NChar</Default></Class>
		<Class name="NClob" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>NClob</Default></Class>
		<Class name="Number" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Number</Default></Class>
		<Class name="NVarChar" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>NVarChar</Default></Class>
		<Class name="Raw" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Raw</Default></Class>
		<Class name="RowId" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>RowId</Default></Class>
		<Class name="SByte" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>SByte</Default></Class>
		<Class name="Timestamp" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>Timestamp</Default></Class>
		<Class name="TimestampLocal" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>TimestampLocal</Default></Class>
		<Class name="TimestampWithTZ" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>TimestampWithTZ</Default></Class>
		<Class name="UInt16" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>UInt16</Default></Class>
		<Class name="UInt32" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>UInt32</Default></Class>
		<Class name="VarChar" mutable="false" type="System.Data.OracleClient.OracleType,System.Data.OracleClient"><Default>VarChar</Default></Class>
		
		<!-- Ceridian generic db param types here -->
		
	</ClassFactory>
		
	<ClassFactory id="BizRuleDecorators">
		<Class name="transaction" type="Swaf.DataAccess.RuleTransactionDecorator,SwafCore"/>
	</ClassFactory>
	
	<ClassFactory id="BizObjFieldDecorators">
	    <Class name="dbAlias" type="Swaf.GenericDecorator,SwafCore" />
	</ClassFactory>
	
	<ApplicationData>
		<Entry name="DB" nodeType="catalog from $CatalogHome$/DbDefinitions">
			Swaf.DataAccess.ConnectionFactoryContainerNode,SwafCore
		</Entry>
		<Entry name="Data" nodeType="catalog from $CatalogHome$/DataRequestDefinitions">
		Swaf.DataAccess.DecoratedDataRequest,SwafCore
		</Entry>
		<Entry name="DA" nodeType="catalog from $CatalogHome$/DataRequestDefinitions">
		use DataRequestTypes factory
		</Entry>
		<Element name="LongRunningQueryThreshold-Log" type="System.Int32">3000</Element>
	</ApplicationData>
	<PerformanceCounter name="ConcurrentDataRequests" type="counter"/>
	<PerformanceCounter name="AverageDataAccessCallLength" type="average"/>
	<PerformanceCounter name="AverageTimeToFormatData" type="average"/>
	<PerformanceCounter name="DataAccessExceptions" type="counter"/>
	<PerformanceCounter name="DataAccessRequestCompleted" type="counter"/>
	<PerformanceCounter name="DataAccessFormatExceptions" type="counter"/>

	<BusinessObjects>
		<BusinessObject type="DataAccessFieldInfo">
			<Field name="dbName" type="String" />
			<Field name="bizObjName" type="String" />
			<Field name="dbType" type="String" />
			<Field name="aliasName" type="String" />
		</BusinessObject>
		
		<BusinessObject type="Counter" key="count">
			<Field name="count" type="Integer" />
		</BusinessObject>
	</BusinessObjects>
</Feature>